//! Header for the Stereo class
#ifndef STEREO_H
#define STEREO_H

#include <ostream>
#include "Device.h"

//! The class Stereo represents a device a remote control handles
/*!
	This device is able to put out its current states
	(on or off state and open or close state of the device).
	The CD slot state can be set and output.
	\class Stereo
	\author Andreas Lehner
	\date 25.11.2012
*/

enum CDState {eOpened, eClosed};

class Stereo : public Device {
public:
	void Info(std::ostream &stream);
	//! Function to open a CD slot
	/*!
		Opens the CD slot by setting the CDState.
	*/
	void Open();
	//! Function to close a CD slot
	/*!
		Closes the CD slot by setting the CDState.
	*/
	void Close();
	//! Function to return the state of the CD slot
	/*!
		This function returns the current state of
		the CDState.
		\return CDState The current state of the CD slot
	*/
	CDState getCDState() const;
	//! Function to set the state of the CD slot
	/*!
		This function sets the current state of
		the CDState.
	*/
	void setCDState(CDState state);

private:
	//state of the CD slot
	CDState mCDState;
};

#endif